package com.aorise.service.cmu.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aorise.service.cmu.CmuService;
import com.aorise.utils.HttpUtils;
import com.google.common.collect.Maps;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

import java.util.Map;

/**
 * @Auther: zhouhao
 * @Date: 2019/7/19
 * @Description:
 */
@Service
public class CmuServiceImpl implements CmuService{

    /**
     *  get方式查询IMB设备信息
     * @param No
     * @return
     */
    public String getDev(String url,String No){
        Map map = Maps.newHashMap();
        map.put("No", No);
        String s = HttpUtils.httpGet(url, map);
        return s;
    }

//    /**
//     * 查询IMB测量值和状态信息
//     * @param No
//     * @return
//     */
//    public String getDevState(String No){
//        Map map = Maps.newHashMap();
//        map.put("No", No);
//        String s = HttpUtils.httpGet("http://222.244.147.121:18090/cmu/getDevState?No={No}", map);
//        return s;
//    }

    /**
     * put方式设置IMB配置
     * @param url   访问地址
     * @param No    设备编号
     * @param data  设备设置数据
     * @return
     */
    public String putDev(String url ,String No ,String data){
//        DevConfigReq devConfig = new DevConfigReq();
//        devConfig.setCMD("PutDevConfig");
//        String s = JSON.toJSONString(devConfig);
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap();
        paramMap.add("No", No);
        paramMap.add("data", data);
        String s = HttpUtils.httpPut(url, paramMap);
        return s;
    }

    /**
     * post方式设置IMB配置
     * @param url   访问地址
     * @param No    设备编号
     * @param data  设备数据
     * @return
     */
    public String postDev(String url ,String No ,String data){
//        ReadyUpdateChild updateChild = new ReadyUpdateChild();
//        updateChild.setCMD("UpdateReq");
//        updateChild.setVersion("V01.00");
//        String s2 = JSON.toJSONString(updateChild);
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap();
        paramMap.add("No", No);
        paramMap.add("data", data);
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/x-www-form-urlencoded");
        new HttpEntity(paramMap, headers);
        return HttpUtils.httpPost(url, paramMap);
    }
}
